019fd304 anatomy - #6
Open
resarytrew wants to merge 8 commits into
Open
Conversation
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
- New i18n module (app/lib/i18n.tsx): language store via useSyncExternalStore (hydration-safe, persists choice in localStorage, defaults to browser language), 88 UI strings per language, fmt() template helper. - New app/lib/anatomy-ru.ts: full Russian translations for all 9 organs — descriptions, key facts, conditions, hotspot labels — plus genitive-case forms so Russian templates stay grammatically correct. - Language switcher (EN/RU) in the topbar; viewer hotspots, search, quiz, modals and 3D canvas aria-label all switch without reloading the model (viewer.updateHotspots). - Fix two factual issues flagged in REVIEW.md: pancreas classified as Digestive & Endocrine, intestine length clarifies small vs large intestine. Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
The single-page app needs no Context.Provider; components subscribe to the module-level store via useSyncExternalStore directly. This removes the React 19 dev warning about multiple renderers sharing a context provider during vinext HMR updates and keeps hydration-safe SSR (getServerSnapshot = en). Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…on, sources - Real quiz engine: 45 bilingual questions (5 per organ) with immediate feedback, educational explanations, live score and retry flow (app/lib/content/questions.ts, QuizFlow). - Body systems view: 12 systems with bilingual descriptions and organ membership; Systems nav button now works; preselects the current organ's system (app/lib/content/systems.ts, SystemsView). - Structured lessons: learning objectives, structure, function, clinical perspective and bibliography per organ, EN and RU (app/lib/content/lessons.ts, LessonContent). Russian lessons add Sinelnikov/Sapin references. - Full comparison modal: 6-row property table between the organ and its reference counterpart (CompareTable). - Medical disclaimer footer and 'educational, not medical advice' note in lessons. - Search now covers descriptions, tissues, conditions and hotspot labels. - Content integrity tests (tests/content-data.test.mjs): 20 checks covering quiz validity, system coverage and lesson completeness. Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…view - Real function animations in the 3D viewer, procedural and bilingual: heart lub-dub cycle, lung breathing, peristalsis, eye scanning, organ pulses and glandular bobs. 'Animate' now animates the actual model in the viewer with a labelled chip (play + stop) instead of a static modal (app/lib/content/animations.ts, viewer.setFunctionAnimation). - Labelled histology per organ in every lesson: tissue layers with one-line descriptions, EN and RU (app/lib/content/histology.ts). - Quiz results now include an answer review: every missed question with your answer vs the correct one. - Content tests extended to 38 checks (histology parity, animation labels/descriptions). Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
- 21 new organs across all 12 systems: stomach, gallbladder, esophagus, tongue, spleen, thymus, lymph node, thyroid, adrenals, pituitary, trachea, larynx, bladder, uterus, ovary, testis, prostate, spinal cord, diaphragm, biceps, femur. - scripts/generate-organs.mjs: procedural GLB models (Three.js + GLTFExporter, 20-150 KB each) fitted to the same normalized space as the original assets; hotspot coordinates are auto-snapped onto the model surface so the 3D dots land on the correct features. - Full bilingual content for each new organ: EN/RU data, systems membership, 3-question quiz bank (63 questions), structured lessons, 3-layer histology, function animations; search covers all of it. - tsconfig: allowImportingTsExtensions so Node-based content tests can import TS modules directly. - Content tests now run 124 checks across 30 organs, RU parity, systems coverage, lessons, histology and animations. Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
- Progress store (app/lib/progress.ts): visited organs, lesson views, animation plays, quiz results (best/attempts), saved organs and per-organ notes — persisted in localStorage, hydration-safe via useSyncExternalStore. - Profile modal: statistics (organs explored, quizzes taken, lessons viewed, animations played), average best quiz score, per-organ progress bars with lesson/animation/saved icons, saved organs chips, notes list, clear-progress action. Library/Notes nav buttons and the profile button now open it. - Notes modal: per-organ notes with auto-save and quick switching between organs that have notes. - Organ library: bookmark button saves the current organ; 'Saved' filter shows the collection; saved organs carry a bookmark dot. - Medical imaging: per-organ modality + clinical note (EN/RU) in every lesson; 12 schematic imaging illustrations (X-ray/CT/MRI/ultrasound style, webp + 2 svg) in public/imaging, always labeled as schematic educational images, never real clinical scans. - Tests extended to 156 checks (imaging parity + file existence, progress store logic). Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
- New route /systems (app/systems/page.tsx + SystemsPage): full-page overview of the twelve body systems. - BodyFigure: stylised SVG human figure with all 30 modelled organs as clickable shapes; selecting a system highlights its organs and dims the rest; 12-colour system palette shared with the legend; keyboard accessible (Enter/Space). - Left panel: system list with colour dots and organ counts. Right panel: system description and organ chips that deep-link to the organ on the home page. Footer note on how the systems work together. - Home page now accepts deep links: /?organ=<id> selects an organ and /?modal=lesson|profile|notes opens a modal (server-driven via searchParams + remount key — no client-only state sync needed). - Header navigation becomes links on the systems page; home 'Systems' button links to /systems; the old in-modal SystemsView is removed. - BodyFigure exports SYSTEM_COLORS; organ groups carry id=organ-<id>. Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
|
@resarytrew is attempting to deploy a commit to the thebuggeddev-9222's projects Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.